package br.edu.eseg.brproject.model.action;

import br.edu.eseg.brproject.model.*;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.framework.EntityQuery;
import java.util.Arrays;

@Name("projetoList")
public class ProjetoList extends EntityQuery<Projeto> {

	private static final String EJBQL = "select projeto from Projeto projeto join projeto.usuario usuario";

	private static final String[] RESTRICTIONS = {
			"lower(projeto.cliente) like lower(concat(#{projetoList.projeto.cliente},'%'))",
			"lower(projeto.justificativa) like lower(concat(#{projetoList.projeto.justificativa},'%'))",
			"lower(projeto.necessidades) like lower(concat(#{projetoList.projeto.necessidades},'%'))",
			"lower(projeto.nome) like lower(concat(#{projetoList.projeto.nome},'%'))",
			"lower(projeto.premissas) like lower(concat(#{projetoList.projeto.premissas},'%'))",
			"lower(projeto.produto) like lower(concat(#{projetoList.projeto.produto},'%'))",
			"lower(projeto.responsabilidadesgp) like lower(concat(#{projetoList.projeto.responsabilidadesgp},'%'))",
			"lower(projeto.restricoes) like lower(concat(#{projetoList.projeto.restricoes},'%'))",
			"lower(projeto.resumo) like lower(concat(#{projetoList.projeto.resumo},'%'))",
			"lower(usuario.nome) like lower(concat(#{projetoList.projeto.usuario.nome},'%'))"};

	private Projeto projeto = new Projeto();

	public ProjetoList() {
		setEjbql(EJBQL);
		setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
		setMaxResults(25);
		getProjeto().setUsuario(new Usuario());
		setRestrictionLogicOperator("and");
	}

	public Projeto getProjeto() {
		return projeto;
	}
}
